package com.wll.util.utils;

import org.slf4j.LoggerFactory;

/**
 * log工具类
 * 
 * @author Administrator
 * 
 * 日志按细粒度从小到大划分 debug -> info -> warn -> error
 * 当前日志级别若是 info 级别，则debug级别日志不会打印，以此类推。
 * 目前系统中日志级别只用到这4种。
 */
public class LoggUtil {
	
	public static void info(Class<?> zlass, String message){
		LoggerFactory.getLogger(zlass).info(message);
	}
	
	public static void debug(Class<?> zlass, String message){
		LoggerFactory.getLogger(zlass).debug(message);
	}
	
	public static void warn(Class<?> zlass, String message) {
		LoggerFactory.getLogger(zlass).warn(message);
	}
	
	public static void error(Class<?> zlass, String message, Throwable e){
		LoggerFactory.getLogger(zlass).error(message, e);
	}
	
	/**
	 * 用info级别输出格式化的错误信息
	 * 
	 * @param zlass  类class
	 * @param format  特定格式错误信息
	 * @param args   参数
	 * 
	 * log.info("错误参数：{} ", "a") ==> "错误参数：a"
	 * log.info("错误参数：a={}, b={}, c={}", "参数一","参数二","参数三") ==> "错误参数：a=参数一, b=参数二, c=参数三"
	 * log.info("错误参数：a={}, b={}", new String[]{"参数一","参数二"})  ==> "错误参数：a=参数一, b=参数二"
	 * 
	 * 参见 String.format(String formatStr, Object... args)
	 */
	public static void info(Class<?> zlass, String format, Object... args) {
		LoggerFactory.getLogger(zlass).info(format, args);
	}
	
	/**
	 * 用debug级别输出格式化的错误信息
	 * 
	 * @param zlass
	 * @param format
	 * @param args
	 */
	public static void debug(Class<?> zlass, String format, Object... args) {
		LoggerFactory.getLogger(zlass).debug(format, args);
	}
	
	/**
	 * 用warn级别输出格式化的错误信息
	 * 
	 * @param zlass
	 * @param format
	 * @param args
	 */
	public static void warn(Class<?> zlass, String format, Object... args) {
		LoggerFactory.getLogger(zlass).warn(format, args);
	}
	
	/**
	 * 用error级别输出格式化的错误信息
	 * 
	 * @param zlass
	 * @param format
	 * @param args
	 */
	public static void error(Class<?> zlass, String format, Object... args) {
		LoggerFactory.getLogger(zlass).error(format, args);
	}
}
